﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace Sistema.Dominio
{
    public class NFeInfo : Entidade
    {
        private String _Numero;
        private String _Serie;
        private IList<NFeDadosEnvioVO> _dadosEnvio;
        private IList<NFeOcorrenciaVO> _dadosOcorrencias;
        private NFeDadosVO _dados;
        private enumStatusNota _statusNota;

        public enumStatusNota StatusNota
        {
            get { return _statusNota; }
            set { _statusNota = value; base.RaisePropertyChanged("StatusNota"); }
        }

        public NFeInfo()
        {
            _dadosEnvio = new List<NFeDadosEnvioVO>();
            _dadosOcorrencias = new List<NFeOcorrenciaVO>();
            _dados = new NFeDadosVO();
        }
         
        public String Serie
        {
            get { return _Serie; }
            set { _Serie = value; }
        }

        public String Numero
        {
            get { return _Numero; }
            set { _Numero = value; base.RaisePropertyChanged("Numero"); }
        }

        public IList<NFeDadosEnvioVO> DadosEnvio
        {
            get { return _dadosEnvio; }
            set { _dadosEnvio = value; }
        }

        public IList<NFeOcorrenciaVO> DadosOcorrencias
        {
            get { return _dadosOcorrencias; }
            set { _dadosOcorrencias = value; }
        }

        public NFeDadosVO Dados
        {
            get { return _dados; }
            set { _dados = value; }
        }

        public override string ToString()
        {
            return String.Format("NFe Serie:{0}; Numero:{1}, Status:{2}", this.Serie, this.Numero, this.StatusNota.ToString());
        }
    }

    public enum enumStatusNota
    {
        Enviada,
        Liberada,
        Cancelada,
        Inutilizada,
        Rejeitada
    }
}
